一、数据库的引入
	1.什么是数据库？
		存储数据的仓库
	2.数据库的好处？
		可以永久性的存储数据
	
		
二、数据库的基本概念
	1.IO流和数据库的区别
		IO流修改数据的话，我们需要先将所有的数据读取到集合中，然后将需要修改的修改完毕后，再全部写回文件中。操作了很多不需要修改的数据
		数据库：采用了表格式的存储，能够定位到具体的哪一行哪一列，直接修改改数据，而不会影响其他数据。
	2.特点
		（1）持久化的存储数据
		（2）方便管理数据
	
三、常见的数据库软件介绍
	1.Mysql
		免费（6.0以前免费）、开源（开放源代码）
		//适用于中小型公司
	2.Oracle
		性能好、价格贵
		//一般用于大公司
		
四、Mysql
	1.mysql的安装
		（1）安装的过程参考安装说明
		（2）建议：希望以后你们安装任何的软件，路径不要出现中文、空格、特殊字符。
		
	2.Mysql的卸载
		（1）关闭进程（关闭服务）
		（2）使用软件管家、控制面板将mysql程序卸载
		（3）删除mysql的存储目录，将MySQL直接删除即可
			C:\ProgramData\MySQL（默认是这个）
	
	3.MySQL服务启动和关闭
		MySQL服务启动
		（1）. 手动。
		（2）. cmd--> services.msc 打开服务的窗口//在服务窗口里可以找到MYSQL的服务,然后设置自动启动(开机自启动)或者手动启动.
		（3）. 使用管理员打开cmd
			* net start mysql : 启动mysql的服务//在DOS窗口手动启动mysql
			* net stop mysql:关闭mysql服务//在DOS窗口手动关闭mysql
	4.MySQL登录和退出	
		登录：
			mysql -uroot -p密码
		密码：请你一定一定一定要记住，接下来会学JDBC，就是用java来操作数据库，需要配置密码。
		
	5.MySQL目录结构	
		（1）安装目录
			需要知道My.ini这个文件
				端口号：port=3306
				字符集：default-character-set=utf8
				数据库的存储目录：datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
		（2）存储目录
			*目录位置
				C:\ProgramData\MySQL\MySQL Server 5.5\data（默认）
			*就是在上面这个目录中，每一个文件夹就是一个数据库，文件夹里面每一个frm文件就是一张表
		
	6.SQL基本概念	
		（1）sql语言
			就是所有的数据库（关系型数据库）都通用的语言。
		（2）方言
			就是只能在特定数据库中使用的语言。
				简单的说就是你mysql中的方言只能在mysql数据库中使用，在其他数据库中是使用不了的。//limit
		
	7.SQL通用语法	
		//这里所写的东西是你必须要记住的
		（1）. SQL 语句可以单行或多行书写，以  分号   结尾。
		（2）. 每两个单词之间必须使用空格分隔。
		（3）. MySQL 数据库的 SQL 语句不区分大小写，关键字建议使用大写。（和java不一样，Java是严格区分大小写的）
		（4）. 3 种注释
			* 单行注释: -- 注释内容 或 # 注释内容(mysql 特有)      //--加上空格（空格千万不能丢了）  -- 这个是事例代码
			* 多行注释: /* 注释 */
	
	8.SQL分类
		1) DDL(Data Definition Language)数据定义语言
			用来定义数据库对象：数据库，表，列等。关键字：create, drop,alter 等
			//操作的是 数据库 和 表（不包括表里的数据）
		2) DML(Data Manipulation Language)数据操作语言
			用来对数据库中表的 数据 进行增删改。关键字：insert, delete, update 等
			//操作的是表中的数据
		3) DQL(Data Query Language)数据查询语言
			用来查询数据库中表的记录(数据)。关键字：select, where 等
			//只能用来查询表中的数据
		4) DCL(Data Control Language)数据控制语言(了解)
			用来定义数据库的访问权限和安全级别，及创建用户。关键字：GRANT， REVOKE 等	
				//授权   以后进公司都是人家分配好权限的账号给你使用
		
	9.DDL_操作数据库	
			//就是里面默认提供的表你千万别使用，只能使用自己创建的。
	    （1）. C(Create):创建    
			* 创建数据库：    //掌握
				* create database 数据库名称;
			* 创建数据库，判断不存在，再创建：      //掌握
				* create database if not exists 数据库名称;
		//-----------------------------------------------------------		
			* 创建数据库，并指定字符集      //了解
				* create database 数据库名称 character set 字符集名;

			* 练习： 创建db4数据库，判断是否存在，并制定字符集为gbk   //了解
				* create database if not exists db4 character set gbk;
		（2）. R(Retrieve)：查询
			* 查询所有数据库的名称:
				* show databases;   //掌握
			* 查询某个数据库的字符集:查询某个数据库的创建语句   //掌握
				* show create database 数据库名称;	
				
		（3）. U(Update):修改    //了解（晚上回去敲两遍）
			* 修改数据库的字符集
			* alter database 数据库名称 character set 字符集名称;
		（4）. D(Delete):删除  //了解（晚上回去敲两遍）
			* 删除数据库
				* drop database 数据库名称;
			* 判断数据库存在，存在再删除
				* drop database if exists 数据库名称;
		（5）. 使用数据库   
			* 查询当前正在使用的数据库名称  //掌握
				* select database();
			* 使用数据库   //掌握
				* use 数据库名称;
		
	10.DDL_操作表
		//一定要先   use数据库   之后再使用
		（1）R(Retrieve)：查询
			* 查询某个数据库中所有的表名称  //掌握
				* show tables;
			* 查询表结构    //掌握
				* desc 表名;
		
		（2）. C(Create):创建
		
				Java:string  name
				mysql:列名1 数据类型1,
					name varchar
		
		
			1. 语法：
				create table 表名(
					列名1 数据类型1,
					列名2 数据类型2,
					....
					列名n 数据类型n
				);
				//* 注意：最后一列，不需要加逗号（,）
				* 数据库类型：
					1. int：整数类型  //掌握
						* age int,
					2. double:小数类型  //掌握
						* score double(5,2)
					3. date:日期，只包含年月日，yyyy-MM-dd   //熟悉
					4. datetime:日期，包含年月日时分秒	 yyyy-MM-dd HH:mm:ss  //熟悉
					5. timestamp:时间错类型	包含年月日时分秒	 yyyy-MM-dd HH:mm:ss	  //熟悉
						* 如果将来不给这个字段赋值，或赋值为null，则默认使用当前的系统时间，来自动赋值

					6. varchar：字符串  //掌握(尤为重要)
						* name varchar(20):姓名最大20个字符
						* zhangsan 8个字符  张三 2个字符
					//注意：   varchar和char注意的地方啊
						//第一：他们的后面 必须 制定长度
						//第二：  name   varchar(20)  可伸缩长度    zhangsan    占用8个字符       
						//		  name		char(20)   固定长度     zhangsan	不管是多大的占用的都是20
		
				创建表
					create table student(
						id int,
						name varchar(32),
						age int ,
						score double(4,1),
						birthday date,
						insert_time timestamp
					);
		
			
			* 复制表：
				* create table 表名 like 被复制的表名;	 //掌握
					//作用：用来做测试数据的。
		
		（3）. D(Delete):删除   //了解
			* drop table 表名;
			* drop table  if exists 表名 ;
		
		（4）. U(Update):修改//了解
			1. 修改表名
				alter table 表名 rename to 新的表名;
			2. 修改表的字符集
				alter table 表名 character set 字符集名称;
			3. 添加一列
				alter table 表名 add 列名 数据类型;
			4. 修改列名称 类型
				alter table 表名 change 列名 新列别 新数据类型;
				alter table 表名 modify 列名 新数据类型;
			5. 删除列
				alter table 表名 drop 列名;
	
	小总结：关于ddl语句它的增删改查都是哪些关键字
		增：create
		删：drop
		改：alter
		查：show
		
		
		
//------------------------------------------------------------------------------------------------------		
		
	11.图形化界面工具SQLyog
		（1）在使用这个软件之前，请你关闭防火墙。
		（2）IP地址、用户名和密码、端口号
		
		
		
		